package it.gat.dao.impl;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import it.gat.dao.TecniciTipologiaDAO;
import it.gat.dao.TipologiaDispositivoDAO;
import it.gat.model.Operatore;
import it.gat.model.TipologiaDispositivo;
import it.gat.util.dao.MySQLDAOFactory;

public class MySQLTecniciTipologiaDAOImpl implements TecniciTipologiaDAO {

	@Override
	public void insert(Operatore tecnico, TipologiaDispositivo tipologiaDispositivo) throws SQLException {
		Connection conn = MySQLDAOFactory.createConnection(); 
		Statement stmt = conn.createStatement();
		String query = "INSERT INTO TecniciTipologia " +
					   "(nomeUtente,idTipologiaDispositivo) " +
					   "VALUES " +
		               "('"+tecnico.getNomeUtente()+"',"+tipologiaDispositivo.getIdTipologiaDispositivo()+")";
		stmt.executeUpdate(query);
	}

	@Override
	public List<TipologiaDispositivo> retrieveTipologieByNomeUtente(String nomeUtente) throws SQLException {
		List<TipologiaDispositivo> tipologieDispositivi = new ArrayList<TipologiaDispositivo>();
		Connection conn = MySQLDAOFactory.createConnection(); 
		Statement stmt = conn.createStatement();
		String query = "SELECT * " +
		               "FROM TecniciTipologia " +
				       "WHERE nomeUtente='" + nomeUtente +"'";
		ResultSet rs = stmt.executeQuery(query);
		while (rs.next()) {
			TipologiaDispositivoDAO tipologiaDispositivoDAO = new MySQLTipologiaDispositivoDAOImpl();
			tipologieDispositivi.add(tipologiaDispositivoDAO.retriveById(rs.getInt("idTipologiaDispositivo")));
			}
		return tipologieDispositivi;
	}

	@Override
	public void delete(Operatore tecnico, TipologiaDispositivo tipologiaDispositivo) throws SQLException {
		Connection conn = MySQLDAOFactory.createConnection(); 
		Statement stmt = conn.createStatement();
		String query = "DELETE TecniciTipologia " +
					   "WHERE nomeutente='"+tecnico.getNomeUtente()+"' AND "+
				       "idtipologiadispositivo="+tipologiaDispositivo.getIdTipologiaDispositivo();
		stmt.executeUpdate(query);

	}
	
	@Override
	public void deleteTipologie(Operatore tecnico) throws SQLException {
		Connection conn = MySQLDAOFactory.createConnection(); 
		Statement stmt = conn.createStatement();
		String query = "DELETE FROM TecniciTipologia " +
					   "WHERE nomeutente='"+tecnico.getNomeUtente()+"' ";
		stmt.executeUpdate(query);

	}

}
